// pages/checkAdd/checkAdd.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 船舶名称
    shipNameArr: [],
    shipNameIndex: 0,
    shipName: "",
    // 维修状态
    maintain: "是",
    // 保养状态
    upkeep: "是",
    // 处理状态
    deal: "检查",
    // 安全检查
    safeArr: [],
    safeIndex: 0,
    safe: "证书和文件",
    // 检查方法
    checkArr: [],
    checkIndex: 0,
    check: "目测检查",
    // 检查方法
    modeArr: [],
    modeIndex: 0,
    mode: "作业岗位日常检查",
    // 日期
    // 计划
    planDate: new Date().getFullYear() + "-" + Number(new Date().getMonth() + 1) + "-" + new Date().getDate(),
    // 安排
    arrangeDate: new Date().getFullYear() + "-" + Number(new Date().getMonth() + 1) + "-" + new Date().getDate(),
    // 备注说明
    remarks: "",
    // 显示 修改按钮
    modify: true,
    // 修改id
    modifyId: null,
  },

  // 名称修改
  shipNameChange(e) {
    this.setData({
      shipNameIndex: parseInt(parseInt(e.detail.value)),
      shipName: this.data.shipNameArr[parseInt(e.detail.value)]
    })
  },

  // 维修状态
  maintainChange(e) {
    this.setData({
      maintain: e.detail.value
    })
  },

  // 保养状态
  upkeepChange(e) {
    this.setData({
      upkeep: e.detail.value
    })
  },

  // 处理状态
  dealChange(e) {
    this.setData({
      deal: e.detail.value
    })
  },

  // 安全检查
  safeChange(e) {
    this.setData({
      safeIndex: parseInt(e.detail.value),
      safe: this.data.safeArr[parseInt(e.detail.value)]
    })
  },

  // 检查方法
  checkChange(e) {
    this.setData({
      checkIndex: parseInt(e.detail.value),
      check: this.data.checkArr[parseInt(e.detail.value)]
    })
  },

  // 检查方式
  modeChange(e) {
    this.setData({
      modeIndex: parseInt(e.detail.value),
      mode: this.data.modeArr[parseInt(e.detail.value)]
    })
  },

  // 计划时间
  planChange(e) {
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      planDate: e.detail.value
    })
  },

  // 安排时间
  arrangeChange(e) {
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      arrangeDate: e.detail.value
    })
  },

  // 备注说明
  remarksChange(e) {
    this.setData({
      remarks: e.detail.value
    })
  },

  // 表单提交
  checkSubmit() {
    let _this = this;
    let darkBlue_shipName = _this.data.shipName; // 名称 
    let darkBlue_remarks = _this.data.remarks; // 备注说明
    if (darkBlue_shipName == '') {
      wx: wx.showToast({
        title: '默认名称无效，请选择',
        icon: 'none',
        duration: 2000
      })
      return false
    }
    else if (darkBlue_remarks == "") {
      wx: wx.showToast({
        title: '请输入备注内容',
        icon: 'error',
        duration: 2000
      })
      return false
    }
    else {
      // 云函数语法
      wx.cloud.callFunction({
        name: "setCheckInfo",
        data: {
          darkBlue_shipName, // 名称
          darkBlue_maintain: _this.data.maintain, //维修
          darkBlue_upkeep: _this.data.upkeep, // 保养
          darkBlue_deal: _this.data.deal, //处理
          darkBlue_safe: _this.data.safe, //安全检查
          darkBlue_check: _this.data.check, // 方法
          darkBlue_mode: _this.data.mode, // 方式
          darkBlue_planDate: _this.data.planDate, // 计划
          darkBlue_arrangeDate: _this.data.arrangeDate, // 安排
          darkBlue_remarks, //备注
          darkBlue_safeIndex: _this.data.safeIndex, // 安全检查 下标
          darkBlue_checkIndex: _this.data.checkIndex, // 方法 下标
          darkBlue_modeIndex: _this.data.modeIndex, // 方式 下标
          darkBlue_del: false, // 删除
        },
        success: (res) => {
          console.log(res);
          wx.setStorageSync('upkeepIndex', 2);
          wx.switchTab({
            url: '/pages/upkeep/upkeep',
          })
        }
      })
    }
  },

  //修改提交
  checkModifySubmit() {
    let _this = this;
    let darkBlue_shipName = _this.data.shipName; // 名称 
    let darkBlue_remarks = _this.data.remarks; // 备注说明
    let index = _this.data.modifyId; //修改ID
    if (darkBlue_remarks == "") {
      wx: wx.showToast({
        title: '请输入备注内容',
        icon: 'error',
        duration: 2000
      })
      return false
    }
    else {
      // 云函数调用
      wx.cloud.callFunction({
        name:"updateCheckInfo",
        data: {
          index,
          darkBlue_shipName, // 名称
          darkBlue_maintain: _this.data.maintain, //维修
          darkBlue_upkeep: _this.data.upkeep, // 保养
          darkBlue_deal: _this.data.deal, //处理
          darkBlue_safe: _this.data.safe, //安全
          darkBlue_check: _this.data.check, // 方法
          darkBlue_mode: _this.data.mode, // 方式
          darkBlue_planDate: _this.data.planDate, // 计划
          darkBlue_arrangeDate: _this.data.arrangeDate, // 安排
          darkBlue_remarks, //备注
          darkBlue_safeIndex: _this.data.safeIndex, // 设备 下标
          darkBlue_checkIndex: _this.data.checkIndex, // 动力 下标
          darkBlue_modeIndex: _this.data.modeIndex, // 结构 下标
        },
        success(res) {
          console.log(res);
          wx.navigateBack({
            delta: 1
          })
        }
      })
    }
  },

  // 获取数据库数据
  getCheckData() {
    let _this = this;
    // 云函数语法 获取名称
    let shipNameArr = [];
    wx.cloud.callFunction({
      // 需调用的云函数名
      name: 'getShipName',
      // 成功回调
      success: (res) => {
        // console.log(res.result);
        res.result.forEach(item => {
          shipNameArr.push(item.darkBlue_shipName);
        })
        _this.setData({
          shipNameArr
        })
      }
    })

    // 获取安全状态
    wx.cloud.callFunction({
      name: "getShipPort",
      success: (res) => {
        // 获取添加信息
        let arr = res.result.data[4];
        _this.setData({
          safeArr: arr.safety, // 检查
          checkArr: arr.check, // 方法
          modeArr: arr.mode, // 方式
        })
      }
    })
  },

  // 获取指定id值赋值给页面，进行修改
  checkModifyVal() {
    const db = wx.cloud.database();
    let _this = this;
    let index = _this.data.modifyId;
    // 云函数语法
    wx.cloud.callFunction({
      // 需调用的云函数名
      name: 'queryCheckInfo',
      data: {
        index
      },
      // 成功回调
      success:(res)=> {
        // 包含该记录的数据
        let arr = res.result.data;
        _this.setData({
          shipName: arr.darkBlue_shipName, // 名称
          upkeep: arr.darkBlue_upkeep, // 保养
          maintenance: arr.darkBlue_maintain, //维修
          deal: arr.darkBlue_deal, //处理
          safe: arr.darkBlue_safe, //安全
          check: arr.darkBlue_check, // 方法
          mode: arr.darkBlue_mode, // 方式
          planDate: arr.darkBlue_planDate, // 计划
          arrangeDate: arr.darkBlue_arrangeDate, // 安排
          remarks: arr.darkBlue_remarks, //备注 
          safeIndex: arr.darkBlue_safeIndex, // 设备 下标
          checkIndex: arr.darkBlue_checkIndex, // 动力 下标
          modeIndex: arr.darkBlue_modeIndex, // 结构 下标
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
    let _this = this;
    let modifyId = options.id;
    // 提示
    if (wx.getStorageSync('root')) {
      // 添加
      _this.getCheckData();
      // 修改
      if (modifyId) {
        _this.setData({
          modify: false,
          modifyId
        })
        _this.checkModifyVal();
      }
    } else {
      wx.showModal({
        title: '提示',
        content: '您没有权限',
        success(res) {
          if (res.confirm) {
            // 跳转到 登录（我的）页面
            wx.navigateBack({
              delta: 1
            })
          } else if (res.cancel) {
            // console.log('用户点击取消')
            wx.navigateBack({
              delta: 1
            })
          }
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    // 防止错乱 跳错页面
    wx.setStorageSync('upkeepIndex', 2);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})